package com.xu.pojo.pojo02;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/*@Component是用于创建对象的 相当于<bean id="student" class="com.xu.pojo.Student"/>*/
/*当不指定名称，由spring提供默认名称是:类名的首字母小写 即student*/
@Component("student01")
public class Student {
    @Value(value = "诸葛亮")
    private String name;
    @Value("22")
    private int age;

    /**
     * Spring提供了对 jdk中@Resource注解的支持。@Resource 注解既可以按名称匹配Bean，
     * 也可以按类型匹配 Bean。默认是按名称注入。使用该注解，要求 JDK 必须是 6 及以上版本。
     * @Resource 可在属性上，也可在 set方法上。
     * 默认是ByName注入，如果赋值失败，就用ByType注入
     *
     */
    @Resource(name = "school01")
    private School school;

    public Student() {
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", school=" + school +
                '}';
    }

    public Student(String name, int age, School school) {
        this.name = name;
        this.age = age;
        this.school = school;
    }

}
